<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>
</body>
<script>
    // 扩展运算符 （spread） ...    => 展开数组或对象


    // 展开数组 => 得到逗号分隔的参数序列
    // 用法:
    // 1. 将数组展开,将数组中的元素作为函数的实际参数 
    // 2. 将数组展开 放到新数组中 

    // 演示:
    var list = [1,4,7,2,5,8,3,6,9];
    // console.log(list);  //  [1,4,7,2,5,8,3,6,9]
    // console.log(...list); // ...[1,4,7,2,5,8,3,6,9] => 1,4,7,2,5,8,3,6,9
    console.log(1,4,7,2,5,8,3,6,9);

    // 应用
    // 将数组展开,将数组中的元素作为函数的实际参数   =>  取数组的最大值
    // var list = [1,4,7,2,5,8,3,6,9];
    // var max = Math.max(...list);  // ...[1,4,7,2,5,8,3,6,9] => 1,4,7,2,5,8,3,6,9
    // console.log(max);


    // 1. 数组的浅拷贝 => 只拷贝一层
    // var list = [1,2,3,[4,5,6,[7,8,9]]];
    // var arr = [...list];  // [1,2,3,[4,5,6,[7,8,9]]]
    // console.log(arr===list); // false
    // console.log(arr[3]===list[3]); // true

    // 2. 数组的合并
    // var arr = [1,2,3];
    // var brr = [4,5,6];
    // var crr = [7,8,9];

    // var list = [...arr,...brr,...crr]; 
    // console.log(list);

    // 3. 伪数组转真数组
    var liList = document.querySelectorAll("ul li");
    var arr = [...liList];
    console.log(arr);




</script>
</html>